package jogo;

import java.io.Serializable;
import java.util.LinkedList;

import figuras.Figura;

public class Jogo extends Thread {

	private LinkedList<Posicao> lista;
	private LinkedList<Player> jogadores;

	private Mapa mapa;
	private Posicao selecionada;

	public Jogo(Mapa mapa, LinkedList<Posicao> lista) {
		this.mapa = mapa;
		this.lista = lista;
		jogadores = new LinkedList<Player>();
	}
	
	public void setListaJogadores(LinkedList<Player> lista) {
		this.jogadores = lista;
	}
	
	public LinkedList<Player> getJogadores() {
		return jogadores;
	}

	public Posicao getSelecionada() {
		return selecionada;
	}

	public LinkedList<Posicao> getLista() {
		return lista;
	}

	public void setSelecionada(Posicao pos) {
		if (pos != null) {
			System.out.println("Posicao: " + pos.getX() + " / " + pos.getY());
		}
		this.selecionada = pos;
	}

	public void removeJogador(Player pl) throws InterruptedException {
		for (Figura f : pl.getTropas()) {
			if (mapa.getSelecionada() != null) {
				if (mapa.getSelecionada().equals(f.getPosicao())) {
					mapa.setSelecionada(null);
				}
			}
			f.interrupt();
			for (Posicao p : f.getPosicoesRange()) {
				p.getLabel().setOpaque(false);
			}
			f.getPosicao().removeFigura();
		}
		for (Figura f : pl.getTropas()) {
			f.join();
		}
		jogadores.remove(pl);
	}

	@Override
	public void run() {
		try {
			while (true) {
				sleep(20);
				mapa.repaint();
			}
		} catch (InterruptedException e) {
		}
	}
}